Optical encoders are typically employed as motion detectors in applications such as closed-loop feedback control in motor control systems. By way of example, many optical encoders are configured to translate rotary motion or linear motion into a two-channel digital output for position encoding.
Many optical encoders employ an LED as a light source. In transmissive encoders, the light is collimated into a parallel beam by means of a lens located over the LED. Opposite the emitter is a light detector that typically consists of photo-diode arrays and a signal processor. When a code scale such as a code wheel or code strip moves between the light emitter and light detector, the light beam is interrupted by a pattern of bars and spaces disposed on the code scale. Similarly, in reflective or imaging encoders, the lens over an LED focuses light onto the code scale. Light is either reflected or not reflected back to the lens disposed over the photo-detector. As the code scale moves, an alternating pattern of light and dark patterns corresponding to the bars and spaces falls upon the photodiodes. The photodiodes detect these patterns and corresponding outputs are processed by the signal processor to produce digital waveforms. Such encoder outputs are used to provide information about position, velocity and acceleration of a motor, by way of example.
A typical reflective optical encoder comprises a light detector, a light emitter and a code wheel or code scale. The detector generates an output by processing photocurrents provided by photodiode arrays included in the light detector. In general, reflective optical encoders include four photodiode channels, namely A, A/, B and B/, which are arranged along a single track in a 2-channel optical encoder. The photodiodes are arranged so that gaps separating adjacent photodiodes are sufficiently large to prevent or inhibit crosstalk from being generated between such adjoining photodiodes. In the prior art, as the resolution of an optical encoder increased, the spacing between adjoining photodiodes decreased, which in turn led to increased crosstalk between channels.
Interpolation circuitry is commonly employed in incremental and absolute digital motion encoding systems, where the interpolation circuitry is configured to generate digital pulses having higher frequencies than base sinusoidal analog signals input to the circuitry. As the interpolation factor of the circuitry increases, the accuracy of the interpolation circuitry becomes ever more critical since the output provided by such circuitry ultimately determines the accuracy of the encoding system. Unfortunately, due to the architecture of most interpolation circuitry—which typically relies on a large number of comparators—the outputs provided by interpolation circuitry tend to be noisy and contain undesired noise spikes arising from excessive switching in the comparators. As a result, the comparators employed in interpolation circuitry for motion encoders are typically characterized by a significant amount of hysteresis, which can provide some immunity from noise spikes. The hysteresis itself can become a source of inaccuracy for the interpolation circuitry, however, especially at high interpolation factors.
Referring to FIG. 1, there is shown an optical encoder system 10 of the prior art comprising light emitter 20 (typically an LED), code wheel or code strip 30 having apertures 31a-31f disposed therein, and light detector 40 comprising photodiodes 41a (A) and 41b (A\). In optical encoder 10, collimated light beam 22 emitted by light emitter 20 projects light onto code wheel 30. Collimated light beam 22 is interrupted by masked or optically opaque sections disposed between apertures 31a-31f as code wheel or code strip 30 rotates in first direction 111 or in second direction 112. (Note that code wheel or code strip 30 rotates substantially in a plane defined approximately by collimated light beam 22 as it is projected from light emitter 20 towards light detector 40.) Portions 50a and 50b of collimated light beam 22 project through apertures 31c and 31d and sweep across light detector 40 and photodiodes 41b (A\) and 41a (A) as code wheel or code strip 30 rotates in direction 111 or 112 in the plane. As code wheel 30 moves in direction 111 or 112, the light patterns projected onto first vertical portion 70 of light detector 40 by beam portions 50a and 50b change, and the output signals provided by photodiodes 41a and 41b change correspondingly. These output signals are generally employed to generate a pair of quasi-triangular signals (as shown, for example, in FIG. 2), which are then used to determine any one or more of the position, speed and direction of code disk 30.
Referring now to FIG. 2, there are shown “triangular” signals A and A\, which are compared to one another and employed to generate pulse 109 using circuitry and methods well known to those skilled in the art of optical encoders. Typically, another set of photodetectors B and B\ is also provided, where photodetectors B and B\ are positioned 90 degrees out of phase with respect to photodetectors A and A\, and which are employed to generate another pulse (not shown in FIG. 2). Pulses for photodetectors A and A\, and B and B\, are generated which are 90 degrees out of phase with respect to one another. As shown in FIG. 2, pseudo-triangular signals A and A\, which for purposes of subsequent interpolation processing would optimally be linear or straight between maximum and minimum portions thereof, exhibit curved portions near the tops and bottoms thereof. These curved portions are due to undesirable capacitance effects, and complicate considerably any subsequent attempts at interpolation.
In an encoder of the type shown in FIG. 1, the spatial resolution of device 10 is generally determined and set according to the specific requirements of the end user. More particularly, the distances or spacing between adjoining photodetectors A and A\ (41a and 41b, respectively), are typically determined according to the particular requirements of a given customer or end user. Time and effort are required to implement such requirements, especially in respect of wafer fabrication when an unusual or new spatial resolution for device 10 is required.
One technique employed in the prior art to change or adjust the spatial resolution provided by device 10 is to employ one or more reticles disposed between light emitter 20 and light detector 40. FIG. 3 shows one such arrangement, where reticle strip 60 has reticles 61 and 62 disposed therein. Reticles 61 and 62 are configured to interfere with the light beams impinging thereon, and to modify them so that the pattern of light projected on light detectors 40 is changed. Reticles 61 and 62 are specifically configured to provide the degree, amount and type of spatial resolution desired of encoder 10.
FIG. 4 shows a conventional prior art single track optical encoder 10 with photodiode array 20 comprising detectors A, A\, B and B\ in a two-channel encoder with associated code strip 30. Signals generated by detectors A and A\ (channel A) and B and B\ (channel B) are also shown in FIG. 4, where the Channel B output signal lags the Channel A output signal by 90 degrees. (The relatively simple circuitry employed to generate output signals for channels A and B is not shown in FIG. 4, but is well known to those skilled in the art and therefore need not be discussed further herein.) The separation between adjoining photodiodes in array 20 and the width of each photodiode is selected according to the resolution that is required of the optical encoder. When the resolution of optical encoder 10 is increased, either the spacing w between adjoining photodiodes is reduced, or the width of each photodiode along common axis 15 is reduced, or both, resulting in photodiode spacing z being decreased, where z is the spacing between the leading or trailing edges of adjoining photodiodes.
Note that in optical encoder 10 illustrated in FIG. 4, the spacing z between the leading or trailing edges of adjoining photodiodes corresponds to one-quarter the combined width of a single pair of adjoining light and dark strips on code scale 30. As a result, two photodiodes are contained within a distance defining the length of each such strip along common axis 15. Note further that in optical encoder 10 illustrated in FIG. 4, all photodiodes disposed along single track or common axis 15 are arranged in the order or sequence A, B, A\, and B\.
Two issued patents that discuss interpolation circuits are U.S. Pat. No. 6,355,927 entitled “Interpolation Methods and Circuits for Increasing the Resolution of Optical Encoders” to Snyder and U.S. Pat. No. 6,816,091 entitled “Interpolator” to Chee, the respective entireties of which are hereby incorporated by reference herein.
In U.S. Pat. No. 6,355,927, interpolation is accomplished by detecting the crossings of sine and cosine signals, which are then used to determine phase angle. However, since this technique uses 2A sin θ, 3A sin θ, 2A Cos θ, 3A Cos θ, . . . , A/2 Sin θ, A/3 Sin θ, A/2 Cos θ, A/3 Cos θ signals, and so on, for detecting crossings, relatively complex analog circuitry is required to generate such intermediate signals, which are always subject to inherent errors contributed by analog processing circuits and their corresponding matching inaccuracies. Also, at the moment in time where signals 3A Sin θ and A/3 Cos θ cross over one another, for example, one signal has a very high slope and the other signal has a sluggish slope. This results in a phase error between the interpolated outputs. Phase errors increase when crossings are detected in signals differing by more than 90 degrees in phase. The type of interpolation described in U.S. Pat. No. 6,355,927 is quite complex, as it requires a large amount of relatively complicated analog circuitry capable of generating the several intermediate signals needed to detect crossings.
In many industrial applications, analog-to-digital converters (ADCs) are used top provide interpolated signals. Such an approach requires, however, a significant amount of hardware and therefore requires larger chip areas. Also, non-linearities inherent in many ADCs can significantly detract from interpolation accuracy.
Several other techniques and devices are sometimes used to interpolate sinusoidal or trapezoidal signals to more accurately determine the speed and position of industrial motion encoders. See, for example, optical encoders manufactured by firms such as ic-Haus Integrated Circuits and Microsystem GmbH. Such devices can exhibit several shortcomings, however, such as using a large amount of hardware (which makes them prone to analog non-linearities and hence phase errors in interpolated outputs) and requiring the use of expensive dynamic compensation circuitry techniques. Such devices may also be prone to process, temperature and voltage variations, and variable phase errors due to detection threshold problems like those described above. Thus, any motion control encoders feature designs that have reached their limits with respect to frequency, performance, and accuracy due to process and other limitations.
What is needed is a high speed and accurate interpolation encoder that can overcome at least some of the foregoing problems.